Remote booting of an operating system by a network

ABSTRACT

PCT No. PCT/FR92/00977 Sec. 371 Date Jun. 16, 1993 Sec. 102(e) Date Jun. 16, 1993 PCT Filed Oct. 15, 1992 PCT Pub. No. WO93/08527 PCT Pub. Date Apr. 29, 1993A method for remote booting by a server of at least one terminal, including a volatile memory (RAM), at least one processor, a telecommunications card enabling connection to the server by a network, said server being provided with telecommunication device and memory of sufficient capacity to store the communications protocol, the operating system of the terminals recopied into an image file, its own operating system, and the applications programs, wherein the method includes the remote loading of a startup program by transforming the first interruption produced by a terminal following its being powered up into a request for reading an image file memorized in the server.

FIELD OF THE INVENTION

The present invention relates to a method and an apparatus for remotebooting of an operating system through a network.

BACKGROUND OF THE INVENTION

As evidenced by British Patent Application 2,231,180, it is known toboot a first computer, connected to a second computer through a network,by loading a subsystem of the operating system into the memory of thefirst computer, the subsystem including the commands enabling filecopying, the creation of a directory, disk formatting, and the operationof a connection through the network so that this first subsystem canthen be used to transfer all the files of the operating system from thesecond computer to the disk of the first computer. This method has thedisadvantage of requiring an initial loading of a subsystem of theoperating system into the memory. A further disadvantage is that thismethod requires the presence of a magnetic peripheral, such as a harddisk or a diskette reader, in the first computer into which theoperating system is to be loaded. Such a procedure is especiallyincompatible with remote booting of terminals, which must be done veryfast.

U.S. Pat. No. 4,958,278 discloses a method for loading data or programsinto a plurality of terminals. These terminals are not provided with adisk reader. Once a loading request is sent by one of the stations thathas just been turned on, the server sends the first frame, waits foracknowledgement, and upon receiving the acknowledgement sends thesubsequent frames. If some other terminal sends a loading request in thecourse of transmission of the frames corresponding to the loading of afirst station, then the second station will take into account the framessent to the first station, by noting in a table the fact that it ismissing the first frames received by the first station. Each stationmust send its acknowledgement after the transmission of one frame. Onceall the frames have been sent to the first station, the stations thatlogged onto the network later receive the first frames, which they hadnot initially received because they were connected after the first framehad been sent to the first station. In this method, it is the serverthat memorizes the number of the first frame that a second station inthe network receives at the moment that station appears, and that at theend of loading the first station connected sends the other station theframes that it had not been able to receive. This method requires eachstation to send its own acknowledgement, which requires time to transmitthe various acknowledgements for each station, to prevent collisions.This introduces a delay between the end of transmission of one frame andthe transmission of the next frame. This delay must either be variableas a function of the number of the stations connected, or must becalculated to correspond to the maximum configuration.

However, this method and apparatus permit only a fixed kind of operationby a predetermined remote booting program that performs the loading of afixed application once and for all.

SUMMARY OF THE INVENTION

One object of the invention is to propose a method for loading terminalsthat may not include a disk or diskette unit and that makes it possible,for a standard terminal architecture using the standard PC operatingsystem (MS-DOS), to load all the applications or files that may bedesired later.

This object is attained by providing a method for remote booting by aserver of at least one terminal, including a volatile memory (RAM), atleast one processor, a telecommunications card enabling connection tothe server by a network, the server being provided withtelecommunication means and memorization means of sufficient capacity tostore the communications protocol, the operating system of the terminalsrecopied into an image file, its own operating system, and theapplications programs, wherein the method enables remote loading of astartup program, by transforming the first interruption produced by aterminal following its being powered up into a request for reading animage file memorized in the server.

In another feature, the step of remote booting of the startup programconsists of loading the startup (BOOT) sector into the volatile memoryRAM, starting the execution of this startup file, transforming theinterruptions requesting access to files of nonexistent magneticperipherals of the terminal into requests for reading the correspondingimage file in the server, by a procedure of coordinate transformation.

In another feature, the procedure of coordinate transformation consistsof transforming the coordinates of physical sectors of the files of themagnetic peripherals into a logical chapter numbering of the image filecorresponding to the sector of the file called by a sectorcorrespondence table, transmitting to the server the chapter readingrequest, and sending the chapters of the image files to the terminal.

In another feature, the volatile memory RAM of the terminal, after thefirst remote booting of the startup program, contains a file allocationtable (FAT) establishing a correspondence among the diskette number, thehead number, the track number, the track sector number, and the filename, and a sector description table (SDT) establishing a correspondenceamong the diskette number, the track number, the track sector number,and the chapter number of the image file of the server.

In another characteristic, the program for transformation of theinterruptions (EMUL INT) is memorized in a nonvolatile memory (PROM) ofthe telecommunications card.

In another characteristic, the method enables the remote loading offiles of the operating system, constituted by the IO.SYS, MSDOS.SYS,CONFIG.SYS and COMMAND.COM files.

In another characteristic, the file allocation table (FAT) is memorizedwith eternal status (KEEP FOREVER) in the random access memory RAM, thisstatus indicating by one bit of the word the state of the sectordescription card.

Another object is to provide a method for remote booting of a pluralityof terminals that limits the waiting time of the terminals.

This object is attained in that when a terminal sends a request for afirst chapter to the server, the server waits for a period of time T1before replying, to assure that other terminals will not be having thesame request.

In another characteristic, a request for a first chapter by anotherstation arriving before a period of time T2 following the request forthe same first chapter by a first station has elapsed is acceptedimmediately, and the procedure of remote booting of all the stationshaving sent the requests is reset to 0 for these stations.

In another feature, the server closes the session at the end of a timeT3 between the transmission of each chapter and a time T5 between eachframe transmission.

In another feature, the server transmits an end of boot frame at a timeT4 after the transmission of an end of chapter frame, without any otherstation having sent a request.

In another feature, the times T1-T5 are parametrizable.

Another object of the invention is to propose a remote booting methodwhich after the end of remote booting of a first operating system setcan also remote boot various applications, either on request of theterminal or by multiaddressing (multicasting).

This object is attained in that the method includes a step of sendingspecific data frames to the chapters that include the Ethernet addressof the receiving stations.

Another object is to permit access to the file loaded into the terminaland for nonexistent files to enable their remote booting.

This object is attained in that the terminal, when executing aninstruction to open a file, reads the file allocation table; thusdetermines the sector and then reads the sector description table todetermine the chapter to be looked for, executes the chapter, if thechapter resides in the executable RAM and; sends a request for remotebooting to the server, if the chapter is absent.

In another feature, the sector description table includes a state byteindicating by one bit thereof the reception of the chapter, by anotherbit thereof its use by a third bit thereof the status "KEEP FOREVER", bya fourth bit thereof the number of the segment, by a fifth bit thepresence of a fill value, and by a sixth bit a data-specific sector.

In another feature, the terminal includes a state register for theemulated interruption function, which in the case of the reception of anend of remote boot frame makes it possible to determine, by readingregisters DL and AL of the microprocessor (213) of the terminal, whetherit is necessary to perform a "load data segment" function or a"shutdown" function.

BRIEF DESCRIPTION OF THE DRAWING

Further characteristics and advantages of the present invention willbecome more apparent from reading the ensuing description, taken inconjunction with the accompanying drawings, in which:

FIG. 1 is a schematic view of the entire network enabling the employmentof the remote booting method;

FIG. 2 is a schematic illustration of the timing diagram of the exchangebetween the server and one or more stations;

FIG. 3 is a schematic view showing the state of the network afterloading of the operating system;

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a server (1) connected by a telecommunications card (10) toan Ethernet network (3) and through this Ethernet network (3) to atleast one first (ST1) and second (ST2) terminal. Each terminal ST1 (21),ST2 (22) is constituted identically by an Ethernet communications card(211), which includes a processor (2110) and a PROM for managing theprocessor package. This PROM includes not only the package managementprogram but also either a program UDP for establishing multiaddressconnections with the server, or a program (IP) for establishingsingle-address connection with the server. The PROM also contains aninterruption emulation program 13 and an interruption program 19. Thecard communicates with the bus of the terminal. The terminal itselfincludes a microprocessor (213) and a random access memory RAM (212)with a capacity of at least 1 Mb, connected to the microprocessor by thebus. The microprocessor (213) communicates with the telecommunicationscard (211) by the bus, and the initialization program contained in theread-only memory (ROM) of the station, upon a reinitialization, makes itpossible to generate an interruption (19), which is emulated by theprogram stored in the PROM (2110). This emulation makes it possible toestablish a connection with the server, with the aid of the programs UDPor IP. The PROM (210) also contains a remote boot protocol (PROT.CHG)and a driver NDIS. As soon as this station is powered up, theinterruption emulation program (19) brings about the transmission of aframe to the server by the communications protocol UDP or IP, and theserver remote boot protocol PROT.CHG replies to this frame bytransmitting the file allocation tables (FAT) and sector descriptiontables (SDT) which are stored in the cache diskette CD of the randomaccess memory RAM (212). After this transfer and after the server hassent a program BOOT for initializing the station, the station executesthis program, and as soon as it encounters a request to read anonexistent file in its RAM (212), it generates an interruption torequest access to the magnetic peripherals that are nonexistent at thatstation. This request for access to the magnetic peripherals causes theexecution of an emulation program, which brings about the establishmentof a link with the server (1) by requesting the server to send a chaptercorresponding to the name of the file the opening of which has beenrequested. The file allocation table (FAT) makes it possible toestablish a correspondence between the file name diskette number thehead number, the track number, and the track sector number where thefile is located, at a station that has a diskette or disk, and the table(SDT) makes it possible to establish a correspondence between the sectornumber and the chapter number to be requested from the server. Followingthis request, the server administrator program (ADM), in an image file(IMA), prepares the chapter requested by the station. In FIG. 1, theimage file includes the MS-DOS operating system files, which areconstituted by the IO.SYS, MS-DOS.SYS, CONFIG.SYS, and COMMAND.COMfiles. Each time the MS-DOS operating system is executed, the stationwill request the opening of the files necessary for its function, andthis file opening will bring about a chapter request until all the filesnecessary for system function have been loaded, to enable normalfunction of the terminal. At that moment, the system configuration,assuming that only the terminal ST1 is in operation, corresponds to thatshown in FIG. 3, in which it can be seen that the volatile memory (212)has been loaded with the IO.SYS, MS-DOS.SYS, CONFIG.SYS, COMMAND.COM andNETFLOP.DOS programs, this last program being intended to handle themanagement of the communications card in such a way as to optionallypermit later remote booting in response to specific sector or chapterrequests. The remote booting protocol employed is shown in furtherdetail in FIG. 2, in which it can be seen that the station (1) sends aninitializing request (BD), to which the server responds with a "BOOTREPLY" message (BR). Following that response, the station sends thechapter request, in this case for the first chapter, by sending a "startchapter 1" (SC1) frame, to which the server responds by the request(ARPD) for the Ethernet address, in the case of a multi-addressingcommunication, and the station furnishes this information by theresponse (ARPR). Following that response, the server sends a sectordescription table frame for chapter 1 (SDTC1), and then at the end of atime T5 sends the data of chapter 1 (DC1), which may be sent in aplurality of frames, always with an interval of time T5 between eachframe. The server waits for a period of time T1 between the "startchapter 1" (SC1) message requesting starting of remote booting and theresponse message requesting the address. This time interval enablesother stations, whose startup took place concomitantly, also to sendtheir "start chapter 1" (SC1) messages, resulting in immediateacceptance by the server. At the end of transmission of chapter 1, thestation, if it finds an error, sends an error message SDTE relating to aportion of chapter 1, and in that case the server resends the frame SDTof chapter 1 (SDTC1) and the specific data for that chapter (SDC1) thathave not been received. At the end, the server sends an "end chapter 1"frame (EC1), and the station executes this chapter 1 received, in orderin the course of execution to discover whether the file corresponding tothe chapter received requires calling up another file. That triggers arequest for another chapter n via a "start chapter n" frame SCn. When itreceives this request, the server waits for a period of time T3 beforesending the frame SDTCn constituting the sector description table of thechapter n and the frame DCn for the data of this chapter. As before, ifthe station sends an error frame relating to the chapter n (SDTECn), theserver will send the frame of the sector description table of thechapter (SDTCn) and the specific data for this chapter SDCn that werenot received properly. Once the station receives the end of chapterframe (ECn), the chapter received is executed, and if there is any errorin the data, a data error frame for chapter n (DECn) is sent, in orderto obtain the transmission of a data frame for chapter n (DCn) on thepart of the server. Once again, transmission is completed by an endframe for chapter n (Cn). The server then waits for a period of time T4,during which, if it receives no complementary request, it sends an "endremote boot" frame (ERB). In the case where the server is connected to aplurality of stations, and when a second station 2 ST2 sends a chapter 1request SC1 by connecting itself to the network during a time intervalT2 following the connection of a first station, the request of thissecond station is immediately accepted, by cancelling the procedure ofremote booting the first station and beginning the procedure again from0 for both stations. This procedure makes it unnecessary to have to waitfor the end of remote booting of one station 1 to remote boot a station1, or again to avoid having a memory at the server level that managesthe chapters that have not been received in order at the end of remotebooting to request the remaining chapters to be received, as in the caseof U.S. Pat. No. 4,958,278 discussed above.

Each frame sent in the course of the remote booting sequence shown inFIG. 2 has a specific configuration corresponding to that shown inTables 1-3. Hence the "start chapter" frame (SC), by its first twobytes, makes it possible to indicate the frame type and to let theserver know that this is a "start chapter" frame, requesting thetransmission of a chapter; by the next 12 bytes, to define the name ofthe volume in which the chapter to be sent is located, and by the nexttwo bytes to define the identifier, that is the number of the chapter inASCII code; and by the next two words to define the Ethernet address (IPstation) of the station.

In the discussion that follows, information that is identical and hasthe same format in the other frames will not be described again.

The sector description table frame SDTC of the chapter also contains thefollowing information: type of frames, name of the volume, identifier,the information defining the mask of the frame formed at one byte andindicating, with the bits A1, the frame number pertaining to thisformation SDTC. A supplementary byte defines the maximum mask of theframe, by setting all the bits to "1"; the next two bytes define thefirst data segment, and the next two other bytes define the second datasegment, if any. Two supplementary bytes define the shift location wherethe next cards in the sector description table will be implanted, andtwo supplementary bytes define the number of following cards. The cardsare defined in eight bytes each and, as shown by the SDC card, have thesector number in two bytes, the pseudonym of the sector in two otherbytes, the shift in the diskette cache in the next two bytes, the fillvalue in one byte, and the state of the card in another byte, defined bythe bit 7 at "1", the logical value to indicate that the sector has beenreceived, the bit 6 at "1" to indicate that the sector has been used,the bit 5 at "1" to indicate that the sector should be kept forever, thebit 4 at "1" to indicate the segment number, the bit 3 at "1" toindicate a fill value, and the bit 0 at "1" to indicate the dataspecific to the sector.

The SDT error frame (SDTE), like the following frames, is constituted byinformation on the type of frame, volume name, identifier, Ethernetaddress of the station, and the mask of the frame SDTC. The specificdata chapter frame (SDC) also includes the information, frame type,volume name, identifier, shift of the first card, shift of the tenthcard, an Ethernet address in six bytes defining the address of thestation, and the data to be sent, in 512 to 1024 bytes.

The data error frame (DE) also includes the frame type, the volume name,the identifier, information over two bytes indicating the number ofmissing sectors, and in two other bytes, for each missing sector, thenumber of the missing sector.

The end of chapter frame EC and the end remote boot frame (ERB) includethe frame type and the volume name.

The specific sector request frame SSD also includes the frame type, thevolume name, the identifier, and the number of the specific sectorrequested in two bytes.

The frame SSR, in addition to the above information, includes the datain 512 bytes. The interruption emulation program, by way of the statusregister of the emulated functions, modifies the information containedin the registers of the processor (213) of the station in accordancewith the following table:

    ______________________________________                                        0   reset      reset the "carry" flag (NY) to 0                               1   disk.sub.-- status                                                                       samples the diskette status ("read"                                           function) and reset carry (NY)                                 2   read       see description above                                          3   write      return "write protect" code and carry error                                   (CY)                                                           4   verify     reset carry (NY)                                               5   format     set carry error (CY)                                           8   parameters sample the diskette parameters and reset                                      carry (NY)                                                     d   special    special remote boot features. (see "status                                    of TCHG after receiving end.sub.-- remote.sub.-- boot -                       with NETFLOP") - with registers DL = 0,                                       AL = 0, this involves the "change data                                        segment" function between the PROM and                                        NETFLOP - with registers DL = 0, AL = 1,                                      it involves the function of shutting down the                                 PROM, or "shutdown".                                           15  read.sub.-- dasd                                                                         return code "change.sub.-- line avail." and reset                             carry (NY)                                                     16  change.sub.-- line                                                                       return code "not active" and reset carry                                      (NY)                                                           17  set.sub.-- dasd                                                                          return code "OK" and reset carry (NY)                          18  set.sub.-- media                                                                         return code "write protect" and carry error                                   (CY)                                                           ______________________________________                                    

All the other function codes return a return code 01.

Hence it can be confirmed that in the case of the special functionrepresented by the code including between 9 and 15, the registers DL andAL of the microprocessor are to be loaded with logic values that willindicate either a change of segment or the function of PROM shutdown.The other functions emulated make it possible to modify the bits (CY)and (NY) of the state register of the microprocessor.

When the CONFIG.SYS file shown in FIG. 3, containing the PROTMAN.DOS,ELNKII.DOS, NEMM.DOS and TCPDRV.DOS files, which respectively assure thefunctions of protocol management, card driver, memory management, andresident portion of the communications program, have been loaded andwhen the entire operating system as well as the NETBIND.EXE program havebeen loaded, the server sends an "end remote boot" frame (ERB), by whichit indicates to the PROM that all the programs have been loaded, and theremote boot protocol contained in the PROM terminates this remotebooting by several actions, which consist of starting the execution ofthe NETBIND program which uses the program ELNKII.DOS to access thenetwork; this program NETBIND starts the execution of NETFLOP, whichenables loading the data segment and recovering the context of thestoppage managed by the PROM. NETFLOP also brings about a normalshutdown of the PROM, with reset of the network card and restoration ofthe IRQ5 vector to the old BIOS vector, and deinstallation of themanager of the programmable timeouts of the remote booting process. Thisshutdown causes the management of the interruptions, and in particularof the interruption, to change over from the PROM to the NETFLOPprogram. This new management makes it possible to have a parametrizablebehavior different from that fixedly defined by the PROM. The managementof the emulation by the PROM is valid as long as the shutdown has notbeen done. After the shutdown, the interruption 13 of the PROM calls oneither the interruption vector of NETFLOP or the old BIOS vector. Thisshutdown is done by executing the following sequence, written for amicroprocessor (213) of the Intel 386 or 486 type, and its transpositionto other microprocessors is within the competence of those skilled inthe art.

    ______________________________________                                        Floppy    proc    near                                                        ______________________________________                                                  push    ds - send data segment ds to the                                              register stack                                                        push    ax - send registers AH and A1                                                 constituting ax to the stack                                          xor     ax, ax - exclusive-or for ax                                          mov     ds, ax, moving ax --> dx                                    moving themov     ax, word ptr ds:[4a2h]                                                        contents from the address determined                                          by the contents of ds + 4a2h to ax                                    mov     ds, ax - moving ax to ds                                              cmp     di, 0 - comparison of the register di with                                    the value 0                                                           pop     ax extraction from the register ax                                    jne     not.sub.-- ours if di is not equal to zf = 0                                  skip to label "not ours"                                              cmp     ah, 19h comparison of 19h with the high                                       portion of ax                                                         jae     not.sub.-- ours skip to "not ours" if ah                                      above 19h => CP = 0                                                   test    boot.sub.-- state, SHUTDOWN                                           jnz     another.sub.-- story skip to "another story"                                  if not equal to 0 +> zf = 0 (if boot                                          state = SHUTDOWN)                                                     push    es - send to the stack of register es                                 pusha   save the eight general registers in the                                       stack                                                                 mov     bp, sp - move SP --> BP                                               mov     si, ax - move AX .sub.-- > SI                                         shr     si, 8 - shift logical right by 8; get rid                                     of al                                                                 shl     si, 1 - shift to the left by 1;                                       call    cs:dispatch[si]-calling the contexts of                                       dispatch indexed by si                                                call    store.sub.-- status - routine store-status call                       popa    extraction of the eight general registers                                     from the stack                                                        pop     es - extraction from the register es                                  pop     ds - extraction of the data segment from                                      the register                                                          iret    return form interrupt                                       not.sub.-- ours:                                                                        pushf   send flags to the stack                                               call    dword ptr save.sub.-- 13; old vector (BIOS)                           pop     ds - data segment extraction                                          retf    2    ; because of carry                                                       flag                                                        another.sub.-- story:                                                                   pushf                                                                         call    dword ptr new.sub.-- it.sub.-- 13; netflop vector                     pop     ds                                                                    retf    2   ; because of carry                                                        flag                                                        floppy endp                                                                   ______________________________________                                    

The management of INT13 by NETFLOP calls on tkhe parameters "KEEPFLOPPY" and "KEEP CACHE" stated in a protocol point INI file, which as afunction of their states bring about the following function:

    ______________________________________                                        KEEPCACHE = YES                                                               KEEPFLOPPY = YES                                                              INIT13h       Looks for the sector in the diskette                                          cache.                                                          ______________________________________                                    

If the sector is not there or is no longer there, a "specific sector"request is generated to the server TCHG. The server directly accessesthe diskette (the one whose FAT and main directory have been sent to thestation must imperatively be inserted into the server reader) andreplies to the station with a "specific sector reply" (SSR) frameaddressed by Ethernet multicasting but including, in the protocolportion of the TCHG, the address IP of the addressee station. Thestations filter this field on receiving such a frame.

Accordingly, a miniature file management remains available for thestation, after the end of remote booting.

    ______________________________________                                        KEEPCACHE = YES                                                               KEEPFLOPPY = NOS                                                              INIT13h       Looks for the sector in the diskette                                          cache.                                                          ______________________________________                                    

If the sector is not there or is no longer there, a "sector inaccessiblefor reading" code is sent to the system.

The cache remains active in memory.

KEEPCACHE=NOS

KEEPFLOPPY=YES

A "specific sector" request is generated to the server TCHG. The serverdirectly accesses the diskette (the one whose FAT and main directoryhave been sent to the station must imperatively be inserted into theserver reader) and replies to the station with a "specific sector reply"frame addressed by Ethernet multicasting but including, in the protocolportion of the TCHG, the address IP of the addressee station. Thestations filter this field on receiving such a frame.

Accordingly, a miniature file management remains available for thestation, after the end of remote booting. (See performance, constraintslinked with changing the diskette).

The cache is inactive, thus freeing the memory for the applications.

KEEPCACHE=NO

KEEPFLOPPY=NO

INIT13h A return code "sector inaccessible for reading" is sent to thesystem.

The cache is inactive, thus freeing the memory for the applications.

The "KEEPCACHE=YES" parameter assumes that the memory range used by theCACHE does not threaten to conflict with a DOS application.

EXAMPLE

If the choice of the segment CACHE is 7000H, an application using thissegment will overwrite the data of the cache, presenting a very majorrisk of system blockage.

Conversely, the segments 0D000h remain available for the cache at anymoment whatever (outside any use of paginated memory managers (EMS)certainly using this same memory range).

Note: the segments 0D000h and/or 0E000h, if they are used, are not freedafter the "end₋₋ remote₋₋ boot" has been received; that is,specifically:

upon reception of the SDT of chapter 1, after recognition of the jobsegments 0D000h and/or 0E000h, these same segments are validated.

upon reception of "end remote boot" these segments are not invalidated.

Further modifications within the competence of one skilled in the artare also part of the spirit of the invention.

                  TABLE 1                                                         ______________________________________                                        SC - start chapter                                                            type of frame     2 bytes 000h                                                Volume Name      12 bytes                                                     identifier        2 bytes Chapter number                                                                in ASCII                                                                      (01 for the first one)                              IP Station        2 words                                                     SDT Chapter                                                                   type of frame     2 bytes 100h                                                Volume name      12  "                                                        identifier        2  "    Chapter number in                                                             ASCII                                               SDT Chapter frame mask                                                                          1  "    1 bit set per frame                                 SDT Chapter max frame mask                                                                      1  "    all the settable bits set                           First data segment                                                                              2  "                                                        Second data segment                                                                             2  "    0 if none                                           Offset in SDT the following                                                                     2  "                                                        cards are to be put in                                                        Number of following cards                                                                       2  "                                                        cards             8  "    each SDC                                            SDC Sector Description Card                                                   Sector number     2 bytes                                                     Sector alias      2  "    (O if none)                                         Offset            2  "    offset in floppy cache                                                        (segment indicated by                                                         segment number bit)                                 Filling value     1 byte                                                      Status            8 bits                                                       7 6 5 4 3 2 1 0                                                               X-----------------                                                                       received                                                          -X---------------                                                                         used                                                              ---X-------------                                                                         Keep forever                                                      -----X-----------                                                                         Segment number                                                    -------X---------                                                                         Filling value                                                     ----------------X                                                                         specifique Data sector (used by server                                        program, not transmitted)                                         ______________________________________                                    

                  TABLE 2                                                         ______________________________________                                        SDT Error                                                                     Type of frame     2 bytes  200h                                               Volume name      12 bytes                                                     identifier        2 bytes                                                     IP Station        2 words                                                     SDT chapter       1 byte                                                      frame mask                                                                    SDC - Specific data chapter                                                   type of frame     2 bytes  401h                                               Volume name      12 bytes                                                     identifier        2 bytes  Chapter number in                                                             ASCII                                              offset of 1st     2 bytes                                                     SDT card                                                                      offset of 2nd     2 bytes  (O if none)                                        SDT card                                                                      Ethernet address  6 bytes                                                     data             512 ou                                                                        1024 bytes                                                   DE - Data Error                                                               type of frame     2 bytes  800h                                               Volume name      12 bytes                                                     identifier        2 bytes  Chapter number in                                                             ASCII                                              number of sectors                                                                               2 bytes                                                     missing                                                                       Sectors numbers   2 bytes  for each sector                                    EC - End Chapter                                                              type of frame     2 bytes  1000h                                              Volume name      12 bytes                                                     identifier        2 bytes  Chapter number in                                                             ASCII                                              ______________________________________                                    

                  TABLE 3                                                         ______________________________________                                        ERB - End Remote Boot                                                         type of frame     2 bytes  2000h                                              Volume name       12 bytes                                                    identifier        2 bytes  Chapter number in                                                             ASCII                                              SSD Specifique Sector Request                                                 type of frame     2 bytes  4000h                                              Volume name       12 bytes                                                    identifier        2 bytes  Chapter number in                                                             ASCII                                              Sector number     2 bytes                                                     SSR - Specifique Sector Reply                                                 type of frame     2 bytes  4001h                                              Volume name       12 bytes                                                    identifier        2 bytes  Chapter number in                                                             ASCII                                              Sector number     2 bytes                                                     data             512 bytes                                                    ______________________________________                                    

We claim:
 1. A method for remote booting by a server of at least oneterminal, wherein said terminal includes a volatile memory, at least oneprocessor, a telecommunications card enabling connection to the serverby a network, said server being provided with telecommunication meansand memory means of sufficient capacity to store a communicationsprotocol, an operating system for the terminal stored in an image file,a server operating system, and applications programs, wherein saidmethod comprises the steps of remote loading said terminal with astartup program, and transforming a first interruption produced by theterminal when the terminal is powered up into a request for reading theimage file stored in the server;wherein said step of remote loading saidterminal with a startup program includes loading a file allocation table(FAT) into the volatile memory to define a diskette number, a headnumber, a track number, a track sector number, and a file name for saidterminal files, and loading a sector description table (SDT) into thevolatile memory to establish a correspondence between said terminalfiles and a diskette number, a track number, a track sector number, andchapter numbers of the image file of the server; and further wherein thestep of remote loading of the startup program comprises the steps ofloading a startup (BOOT) sector into the volatile memory, starting theexecution of said startup program, wherein the execution of said startupprogram includes file request interruptions for requesting access tononexistent terminal files of nonexistent magnetic peripherals of theterminal, and transforming said file request interruptions into requestsfor reading a corresponding image file in the server; and said methodfurther including the step of providing an emulation program fortransformation of the file request interruptions, and storing saidemulation program in a nonvolatile memory of the telecommunicationscard.
 2. The method of claim 1, wherein the step of transforming saidfile request interruptions comprises the steps of transformingcoordinates of physical sectors of the nonexistent terminal files on thenonexistent magnetic peripherals into logical chapter numbers of theimage file, transmitting to the server a request by the terminal to readchapters corresponding to the chapter numbers, and sending the requestedchapters of the image file to the terminal.
 3. The method of claim 1,further including the step of enabling the remote loading of files ofthe terminal operating system, wherein said terminal operating systemfiles include IO.SYS, MSDOS.SYS, CONFIG.SYS and COMMAND.COM files. 4.The method of claim 1, wherein the step of loading the file allocationtable (FAT) includes storing the file allocation table with eternalstatus in the random access memory, said eternal status being indicatedby one bit of a word in the sector description table.
 5. The method ofclaim 1, further including the steps of establishing time periods T1,T2, T3, T4, and T5 for effecting operation of the server and using amanager process to manage said time periods, wherein at least a firstand second terminal are connected to the server, and further wherein thestep of transmitting a reading request for a first chapter to theserver, includes causing the server to wait for time period T1 beforesending the requested first chapter, and checking if the second terminaltransmits the same request during time period T1.
 6. The method of claim5, wherein if said second terminal sends a request for a first chapterduring time period T1 and before time period T2 following the requestfor the same first chapter by the first station, restarting theprocedure of remote booting of the first and second terminals.
 7. Themethod of claim 5, further including the step of causing the server towait for time period T3 between the sending of chapters and time periodT5 between frame transmissions which together define the chapters. 8.The method of claim 5, further including the step of causing the serverto close a session at the end of time period T4 after sending an end ofchapter frame, if no other station has sent a request.
 9. The method ofclaim 5, further including the step of selectively setting the length ofeach of said time periods T1, T2, T3, T4 and T5.
 10. The method of claim1, further including the step of sending chapter-specific data frameswhich include an Ethernet address of a receiving terminal.
 11. Themethod of claim 1, further including the steps of causing the terminal,when executing an instruction to open a file, to read the fileallocation table, thus determining a sector, reading the sectordescription table to determine a chapter, executing the chapter if thechapter resides in the volatile memory, and sending a request for remoteloading to the server if the chapter is not in the volatile memory. 12.The method of claim 11, wherein the sector description table includes astate byte, and further including the step of indicating by a first bitof the state byte, reception of a chapter, by a second bit use of achapter, by a third bit of the state byte, a eternal status, by a fourthbit of the state byte, a number of segments, by a fifth bit of the statebyte, presence of a fill value, and by a sixth bit of the state byte, adata-specific sector.
 13. The method of claim 1, wherein the terminalincludes a state register for an emulated interruption function, andfurther including the step of using said state register at a receptionof an end of remote boot frame to determine, by reading registers DL andAL of the processor of the terminal, whether it is necessary to performa "load data segment" function or a "shutdown" function.